package br.com.manguesoft.mstore.desktop.cliente;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import br.com.manguesoft.mstore.negocio.cliente.api.Cliente;
import br.com.manguesoft.mstore.negocio.cliente.api.TipoCliente;
import br.com.manguesoft.mstore.negocio.comum.api.Cidade;
import br.com.manguesoft.mstore.negocio.comum.api.Endereco;
import br.com.manguesoft.mstore.negocio.comum.api.Telefone;
import br.com.manguesoft.mstore.negocio.comum.exception.MStoreException;
import br.com.manguesoft.mstore.util.Fachada;
import br.com.manguesoft.mstore.util.ServiceLocator;

public class CadastroCliente {

	static {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"classpath:ApplicationContext.xml");
		ServiceLocator.getInstance().setApplicationContext(applicationContext);

	}

	public static void main(String[] args) throws MStoreException {

		Fachada fachada = (Fachada) Fachada.getInstancia();
		
		TipoCliente tipoCliente = fachada.obterTipoCliente(1);
	
		Cidade cidade = fachada.obterCidade(2);
		
		Telefone telefones = (Telefone) ServiceLocator.getInstance().getApplicationContext().getBean("telefones");
		telefones.setNumero(99898768);
		Set<Telefone> tele= new HashSet<Telefone>();
		tele.add(telefones);
		
		
		Endereco endereco = (Endereco)ServiceLocator.getInstance().getApplicationContext().getBean("endereco");
		endereco.setBairro("Jardim Brasil");
		endereco.setCep(45463);
		endereco.setCidade(cidade);
		endereco.setEmail("alex@mail.com");
		endereco.setNumero(9);
		endereco.setRua("Feliz");
		endereco.setTelefones(tele);
		
		long idEndererco = fachada.inserirEndereco(endereco);
		System.out.println("endereco inserido com susseco " + idEndererco);
		Endereco endereco2 = fachada.obterEndereco(idEndererco);
		
		
		Cliente cliente = (Cliente) ServiceLocator.getInstance()
				.getApplicationContext().getBean("cliente");
		cliente.setCnpj(1212);
		cliente.setDataNacimento(new Date());
		cliente.setHabilitado(true);
		cliente.setIdentificacao(12);
		cliente.setInscricaoEstadual(10);
		cliente.setNome("Alex");
		cliente.setRg(567);
		cliente.setTipoCliente(tipoCliente);
		cliente.setEndereco(endereco2);
		
		long idClinteInserido = fachada.inserirCliente(cliente);
		System.out.println("clinte inserido com susseco " + idClinteInserido);
		
	 
	}

}
